#!/usr/bin/python3
# -*- coding:utf-8 -*-
""""
@Author: 李吉凯
@Email: lijk34925@hundsun.com
@Time: 2022/5/23 14:01
@File: 风险等级查询_导出.py
"""
from qturboframe.lib.utils.by import By

from BladeFerm.Lib.Common import logger, data_processing
from BladeFerm.hui12_common.check_data import check_data_not_contains, check_file_exit
from BladeFerm.hui2_app import FE
from BladeFerm.Lib.Common import DownPath
from BladeFerm.utils.basic_opration import delete_dir_files, clear_dir
from 基础公共脚本.公共方法_hui2 import open_menu


# old，可以废弃了
def risk_level_export(input_data=None, ui_expect=None):
    logger.debug(f'DownPath： {DownPath}')
    # 进入 风险等级查询 菜单
    open_menu({'子系统名称': '反洗钱系统', '菜单名称': '客户风险评估/风险等级查询'})
    is_export_all = input_data.pop('导出全部否')
    if is_export_all != '是':
        # 表格勾选数据
        FE.table().select_rows(input_data, turn_page=input_data.get('是否分页'))

    # 导出数据
    FE.button(idname={By.CSS_SELECTOR: 'div.h-dropdown-rel>button'}).click()
    option_list = FE.list({By.XPATH: '//div[@class="h-dropdown-rel"]//following-sibling::div'})
    option_list.foud_target({By.CSS_SELECTOR: 'button.h-btn'})
    button_name = '导出全部行' if is_export_all == '是' else '导出选中行'
    option_list.click_target(button_name)

    # 检查导出结果
    box = FE.msg_box(idname={By.XPATH: '//div[@class="h-modal-wrap h-modal-nocopy"]'}, timeout=1)
    box.check_dispaly(ui_expect.get('期望结果') == '是')
    # 等待导出弹框关闭
    if box.element:
        box.check_export_result(True)

def risk_level_refresh_data(input_data=None, ui_expect=None):
    # 进入 风险等级查询 菜单
    open_menu({'子系统名称': '反洗钱系统', '菜单名称': '客户风险评估/风险等级查询'})
    grid = FE.table_new({'text': '唯一客户号'})
    grid.refresh()

# 示例：导出数据到文件
# @data_processing 装饰器，数据预处理。确保blade平台调试时数据与本地数据保持一致。
@data_processing
def risk_level_export_data(input_data=None, ui_expect=None):
    # 清空目录
    res = clear_dir(DownPath)
    logger.info(f"res: {res}")

    # 进入 风险等级查询 菜单
    open_menu({'子系统名称': '反洗钱系统', '菜单名称': '客户风险评估/风险等级查询'})
    # 导出 数据
    grid = FE.table_new({'text': '唯一客户号'})
    is_all = True if input_data.get('导出全部否', '是') == '是' else False
    grid.export(is_all=is_all, rows=input_data.get('导出数据行', None))

    # 校验 检查文件是否存在
    check_file_exit(ui_expect.get("文件名称", "风险等级查询"))

    # todo：校验文件内容---各组自己评估

@data_processing
def risk_level_set_col_name(input_data=None, ui_expect=None):
    logger.debug(f'DownPath： {DownPath}')
    # 进入 风险等级查询 菜单
    open_menu({'子系统名称': '反洗钱系统', '菜单名称': '客户风险评估/风险等级查询'})
    grid = FE.table_new()
    grid.refresh()
    cancel_cols = input_data.get('取消列名')
    grid.set_col_name(cancel_cols)
    col_name = grid.get_title_list()
    check_data_not_contains(cancel_cols, col_name)


